using System;
using System.Collections.Generic;
using System.Data;
using System.Configuration;
using System.Web.UI;
using Anthem;
using BusinessRules;
using Common;
using DataAccess;

public partial class EjecucionListado : PageBase
{
    #region Propiedades

    public string IdentificadorPszId
    {
        get { return (ViewState["IdentificadorPszId"] == null ? string.Empty : ViewState["IdentificadorPszId"].ToString()); }
        set { ViewState["IdentificadorPszId"] = value; }
    }
    public string IdentificadorPszeId
    {
        get { return (ViewState["IdentificadorPszeId"] == null ? string.Empty : ViewState["IdentificadorPszeId"].ToString()); }
        set { ViewState["IdentificadorPszeId"] = value; }
    }
    private DataTable SigProgramaZonasGeograficasEjecucionDataTable
    {

        get
        {

            DataTable objTable = null;
            if (Cache[SigProgramaZonasGeograficasEjecucionData.SIG_PROGRAMAS_BAS_ZONAS_GEOGRAFICAS_EJECUCION_TABLE + Session.SessionID] != null)
                objTable = (DataTable)Cache[SigProgramaZonasGeograficasEjecucionData.SIG_PROGRAMAS_BAS_ZONAS_GEOGRAFICAS_EJECUCION_TABLE + Session.SessionID];
            return objTable;
        }

        set
        {
            if (value != null)
            {
                Cache.Insert(SigProgramaZonasGeograficasEjecucionData.SIG_PROGRAMAS_BAS_ZONAS_GEOGRAFICAS_EJECUCION_TABLE + Session.SessionID, value, null, DateTime.Now.AddMinutes(20), TimeSpan.Zero);
            }
        }
    }

    #endregion

    #region Page_Load

    protected void Page_Load(object sender, EventArgs e)
    {
        WccAcciones1.AddEnabledDuringCallBack = false;
        WccAcciones1.AddTextDuringCallBack = "Guardando... Por favor esperar!!!";
        WccAcciones1.UpdateEnabledDuringCallBack = false;
        WccAcciones1.UpdateTextDuringCallBack = "Guardando... Por favor espere!!!";

        if (Manager.IsCallBack)
        {
            Manager.RegisterClientScriptBlock(typeof(Page), "reloj", "<script>muestraReloj2();</script>");
        }
        CadenaConexion = ConfigurationManager.AppSettings["Conn"];
        if (!IsPostBack)
        {
            TraerContextItems();
            BindDatos();
        }
        ////////////////////////////
        // cargar Programas de cache //
        ////////////////////////////
        if (SigProgramaZonasGeograficasEjecucionDataTable != null)
        {
            if (SigProgramaZonasGeograficasEjecucionDataTable.Rows.Count > 0)
            {
                gridEjecucion.DataSource = SigProgramaZonasGeograficasEjecucionDataTable.DefaultView;
                gridEjecucion.DataBind();
            }
        }

        if (Permisos.Contains(Utilidad.Acciones.Publicar))
        {
            WccAcciones1.PublishVisible = true;
        }

    }

    #endregion

    #region TraerContextItems

    private void TraerContextItems()
    {
        if (Context.Items["IdentificadorPszId"] != null)
            IdentificadorPszId = Context.Items["IdentificadorPszId"].ToString();
    }

    #endregion

    #region BindDatos

    private void BindDatos()
    {
        SigProgramaZonasGeograficasEjecucion objSigProgramaZonasGeograficasEjecucion = new SigProgramaZonasGeograficasEjecucion(ConfigurationManager.AppSettings["Conn"]);
        SigProgramaZonasGeograficasEjecucionData objSigProgramaZonasGeograficasEjecucionData = objSigProgramaZonasGeograficasEjecucion.ConsultarProgramaZonasGeograficasEjecucionSpzId(IdentificadorPszId);
        SigProgramaZonasGeograficasEjecucionDataTable = objSigProgramaZonasGeograficasEjecucionData;
        gridEjecucion.DataSource = objSigProgramaZonasGeograficasEjecucionData.DefaultView;
        gridEjecucion.DataBind();
        //pnlEjecucionTerritorial.Visible = objSigPlanProgramaData.Rows.Count > 0;
    }

    #endregion

    #region WccAcciones1_Add_OnClick

    protected void WccAcciones1_Add_OnClick(object sender, ImageClickEventArgs e)
    {
        crearContextItems();
        Server.Transfer("Ejecucion.aspx?SSM_ID=8", true);	
    }

    #endregion

    #region WccAcciones1_Delete_OnClick

    protected void WccAcciones1_Delete_OnClick(object sender, ImageClickEventArgs e)
    {
        List<object> keyValues = gridEjecucion.GetSelectedFieldValues("SPZE_ID");
        try
        {
            foreach (object key in keyValues)
            {
                SigProgramaZonasGeograficasEjecucion objSigProgramaZonasGeograficasEjecucion =
                    new SigProgramaZonasGeograficasEjecucion(ConfigurationManager.AppSettings["Conn"]);
                objSigProgramaZonasGeograficasEjecucion.EliminarProgramasZonasGeograficasEjecucion(key.ToString());
                BindDatos();
                lblMensaje.Text = "Registros Eliminados";
                //elimina los items seleccionados y hace nuevamente un bind contra la base de datos
            }
            SigProgramaZonasGeograficas objSigProgramaZonasGeograficas =
                    new SigProgramaZonasGeograficas(ConfigurationManager.AppSettings["Conn"]);
            objSigProgramaZonasGeograficas.ActualizarProgramasZonasGeograficasEstado(IdentificadorPszId, EnumHelper.GetDescription(Utilidad.Estados.Inactivo));
        }

        catch (Exception ex)
        {
            //throw new ApplicationExceptionManager(Utilidad.TraerMensaje("gmsgErrorInsertar", this.GetType().FullName), ex);
            lblMensaje.Text = ex.Message;
        }
    }

    #endregion

    #region crearContextItems

    private void crearContextItems()
    {
        try
        {
            Context.Items["IdentificadorPszId"] = IdentificadorPszId;
            Context.Items["IdentificadorPszeId"] = IdentificadorPszeId;
        }
        catch (Exception ex)
        {
            lblMensaje.Text = ex.ToString();
        }
    }

    #endregion

    #region WccAcciones1_Update_OnClick

    protected void WccAcciones1_Update_OnClick(object sender, ImageClickEventArgs e)
    {
        List<object> keyValues = gridEjecucion.GetSelectedFieldValues("SPZE_ID");
        try
        {
            foreach (object key in keyValues)
            {

                IdentificadorPszeId = key.ToString();
            }
            crearContextItems();
            Server.Transfer("Ejecucion.aspx?SSM_ID=8", true);
        }
        catch (Exception ex)
        {
            //throw new ApplicationExceptionManager(Utilidad.TraerMensaje("gmsgErrorInsertar", this.GetType().FullName), ex);
            lblMensaje.Text = ex.Message;
        }
    }

    #endregion

    #region lnkPlanPrograma_Click

    protected void lnkPlanPrograma_Click(object sender, EventArgs e)
    {
        crearContextItems();
        Server.Transfer("SigPlanPrograma.aspx?SSM_ID=8", true);	
    }

    #endregion

    #region LnkCofinanciacion_Click

    protected void LnkCofinanciacion_Click(object sender, EventArgs e)
    {
        crearContextItems();
        Server.Transfer("CofinanciacionListado.aspx?SSM_ID=8", true);	
    }

    #endregion

    #region WccAcciones1_Publish_OnClick

    protected void WccAcciones1_Publish_OnClick(object sender, ImageClickEventArgs e)
    {
        SigProgramaZonasGeograficas objSigProgramaZonasGeograficas =
            new SigProgramaZonasGeograficas(ConfigurationManager.AppSettings["Conn"]);
        objSigProgramaZonasGeograficas.ActualizarProgramasZonasGeograficasEstado(IdentificadorPszId, EnumHelper.GetDescription(Utilidad.Estados.Publicado));
    }

    #endregion

}
